使用Node.JS,如何将JSON文件读入(服务器)内存?

您所在的位置:网站首页 json utf8 使用Node.JS,如何将JSON文件读入(服务器)内存?

使用Node.JS,如何将JSON文件读入(服务器)内存?

2023-01-05 07:32| 来源: 网络整理| 查看: 265

背景

我正在对Node.js进行一些实验,并希望从文本文件或.js文件(更好的??)中读取JSON对象到内存中,以便我可以从代码中快速访问该对象.我意识到那里有Mongo,Alfred等东西,但这不是我现在所需要的.

如何使用JavaScript/Node从文本或js文件和服务器内存中读取JSON对象?

问题回答

同步:

var fs = require('fs'); var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

异步:

var fs = require('fs'); var obj; fs.readFile('file', 'utf8', function (err, data) { if (err) throw err; obj = JSON.parse(data); }); 问题回答

我发现这样做的最简单方法是使用require和JSON文件的路径.

例如,假设您有以下JSON文件.

test.json

{ "firstName": "Joe", "lastName": "Smith" }

然后,您可以使用在.atn.js应用程序中轻松加载它 require

var config = require('./test.json'); console.log(config.firstName + ' ' + config.lastName); 问题回答

异步是有原因的!在@mihai扔石头

否则,这是他用于异步版本的代码:

// Declare variables var fs = require('fs'), obj // Read the file and send to the callback fs.readFile('path/to/file', handleFile) // Write the callback function function handleFile(err, data) { if (err) throw err obj = JSON.parse(data) // You can now play with your datas } 问题回答

至少在Node v8.9.1中,你可以做到

var json_data = require('/path/to/local/file.json');

并访问JSON对象的所有元素.

问题回答

在Node 8中,您可以使用内置函数util.promisify()来异步读取这样的文件

const {promisify} = require('util') const fs = require('fs') const readFileAsync = promisify(fs.readFile) readFileAsync(`${__dirname}/my.json`, {encoding: 'utf8'}) .then(contents => { const obj = JSON.parse(contents) console.log(obj) }) .catch(error => { throw error }) 问题回答2021 年的答案,使用 ES6 模块语法和 async/await

在现代 JavaScript 中,这可以单行完成,无需安装额外的包:

import { readFile } from 'fs/promises'; let data = JSON.parse(await readFile("filename.json", "utf8"));

try/catch根据需要添加一个块来处理异常。

问题回答

使用node-fs-extra (异步等待)

const readJsonFile = async () => { const myJsonObject = await fs.readJson('./my_json_file.json'); console.log(myJsonObject); } readJsonFile() // prints your json object 问题回答

使用fs-extra包非常简单:

同步:

const fs = require('fs-extra') const packageObj = fs.readJsonSync('./package.json') console.log(packageObj.version)

异步:

const fs = require('fs-extra') const packageObj = await fs.readJson('./package.json') console.log(packageObj.version) 本文标题: 使用Node.JS,如何将JSON文件读入(服务器)内存? 本文网址: https://www.aigwa.com/cms/Content/detail/2580.html 本文标签: jsonnode.jsjavascript


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3